<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Hello-AJAX</title>
</head>
<body>
<h3>Hello,AJAX!!!</h3>
<p>AJAX（Asynchronous JavaScript And XML）是一种使用 XMLHttpRequest 技术构建更复杂，动态的网页的编程实践。</p>
<p>AJAX允许只更新一个 HTML 页面的部分 DOM，而无须重新加载整个页面。</p>
<p>AJAX还允许异步工作，这意味着当网页的一部分正试图重新加载时，您的代码可以继续运行（相比之下，同步会阻止代码继续运行，直到这部分的网页完成重新加载）。</p>
<p>通过交互式网站和现代 Web 标准，AJAX正在逐渐被 JavaScript 框架中的函数和官方的 Fetch API 标准取代。</p>

<dl>
    <dt>
        <a href="ajax/original-ajax.html" target="_blank">原生 AJAX-XHR</a>
    <dd>基于 XMLHttpRequest 对象，使用原生 js
        代码。几乎所有的浏览器都有这个对象，只有IE7以下的没有，而是通过ActiveXObject这个对象来创建。
    </dd>
    <dd><b>不建议使用</b></dd>
    </dt>
    <dt>
        <a href="ajax/jquery-ajax.html" target="_blank">jQuery AJAX</a>
    <dd>jQuery AJAX 底层封装了 XMLHttpRequest 对象，使其更便于使用，因为原生 XHR 是 AJAX 技术的一大痛点。</dd>
    <dd><b>传统 Web 开发使用</b></dd>
    </dt>
    <dt>
        <a href="ajax/axios.html" target="_blank">Axios</a>
    <dd>Axios 是一个基于 promise 的 HTTP 库，可以用在浏览器和 node.js 中。它也是基于原生 XHR 的再封装。</dd>
    <dd>axios 说是支持 ie8+，不过其原理是基于 promise 之上实现的，所以会存在不兼容 ie 的问题，此时只需要引入 promise
        库就行。
    </dd>
    <dd><b>建议基于 Node 构建项目使用，如：vue+element-ui+axios 前端技术栈</b></dd>
    </dt>
    <dt>
        <a href="ajax/fetch.html" target="_blank">Fetch</a>
    <dd>Fetch API 已经作为现代浏览器中异步网络请求的标准方法，其使用 Promise 作为基本构造要素。它脱离了 XHR，是 ES
        规范里新的实现方式。
    </dd>
    <dd>Fetch 在主流浏览器中都有很好的支持，除了IE。（放弃IE吧，它已经是旧时代的产物了，微软都放弃它了）</dd>
    <dd>如果实在不支持，也可以使用第三方的<a href="https://github.com/github/fetch" target="_blank">ployfill</a>来获得支持
    </dd>
    <dd><b>新规范，相信会逐渐取代传统 AJAX 使用 XHR 进行动态网页编程</b></dd>
    </dt>
</dl>
</body>
</html>
